Appunti di pubblicazione con Pelican

Appunti sulla formattazione Markdown e pubblicazione con Pelican, il generatore di pagine statiche che alimenta questo sito.

Installazione

  • Con Debian 9, Stable. Secca sul ferro.
  • Con una Virtual Machine (con la versione stable di Python e Pelican).
  • Con Docker.
    apt install pelican markdown python3-pip
    

Configurazione

Il manuale di pelican

mkdir -p ~/Sites/yoursite.yourdominio

pelican-quickstart -p

Viene generata la cartella content che deve conterrà i post.md

emacs ~/Sites/yoursite.yourdominio/content/primopost.md

Headers

Ogni post.md inizia con le definizioni:

Title: Prima viene il corvo
Date: 2019-02-31
Category: disco
Tags: Calvino, resistenza
Slug: 2018-einaudi-calvino-italo-prima-viene-il-corvo
Authors: Italo Calvino
Summary: Questo è il riassunto che verrà visualizzato nell'index e nei feed.

Titolo: Solo il campo: Titolo è necessario.

Data: la data definisco in pelicanconf come viene rappresentata, qui la indico in questo formato: 2019-02-31 che non si presta ad equivoci.

Categoria: Meglio individuare le categoria a priori. È possibile anche usare i folder per creare una categoria, ma preferisco indicarele direttamente negli header.

Tags: Le tags secondo me possono andare a pioggia e pazienza se sono rodondanti e ripetono anche qualche categoria. Per fortuna, non sono case-sensitive.

Authors: Come Authors posso mettere diversi autori separati da una virgola, o posso usare: "Author" se il sito, come in questo caso, ha un autore solo. Nel caso del mio sito personale infatti, cliccando sul nome dell'autore, invece che fornire la lista dei suoi post, si viene diretti a una pagina informazioni.

Slug: Lo slug serve a definire l'url della pagina, che altrimenti viene derivato dal titolo. Ad esempio mi piace che l'url contenga anno-riferimento-titolo-proposito (es. 2011-giornale-titoloarticolo-recensione)

Capita tre volte di nominare un post:

  • Nel nome del file: post.md
  • nel Titolo
  • nell'url

Meglio farci un pensiero e trovare un metodo, ad esempio unificare nomefile e slug e andare giù piatti o creativi con il titolo.

Ad esempio il post dell'articolo Hackmeeting 2010:

nomefile: 2010-ilmanifesto-hackmeeting-roma-scambio-e-libera-comunicazione.md
Title:    Hackmeeting Roma (Scambio e libera comunicazione)
Slug:     2010-ilmanifesto-hackmeeting-roma-scambio-e-libera-comunicazione

Sintassi di scrittura

Il markdown si scrive come testo normale, supporta i seguenti marcatori:

*italico*

**grassetto*

# Capitoli
## Capitoletti

> evidenza

[TAB] codice

[TAB] #!python
      righe numerate

Creare link

Link esterno

[chumbarolling](https://www.youtube.com/watch?v=tf7kDY1krw8)

Immagine

![foto]({attach}/images/immagine.jpg)

Link a un articolo interno al sito

[link a un articolo]({filename}/howto/pelican.md)

Link a una tag, categoria, autore

[link a una tag]({tag}pelican)
[link a una categoria]({category}disco)
[link a un autore]({author}Daniele Salvini)

Link a un file

[link a un file]({attach}/media/archive.zip)
[link a un file](/media/pubkey.asc.asc)

Tema

Tenere il tema default, usare un template, o scrivere il proprio tema.

Sviluppo

make newpost NAME='anno-riferimento-titolo-proposito'

make html

make serve

(goto) http://localhost:8000/

Pubblicazione

make clean

make publish

make rsync_upload